home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.1B1 / PInterfaces / OCEStandardDirectory.p < prev    next >
Encoding:
Text File  |  1995-04-18  |  20.7 KB  |  648 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        OCEStandardDirectory.p
  3.  
  4.      Contains:    Apple Open Collaboration Environment Standard Directory Interfaces.
  5.  
  6.      Version:    Technology:    AOCE Toolbox 1.02
  7.                  Package:    Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT OCEStandardDirectory;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __OCESTANDARDDIRECTORY__}
  30. {$SETC __OCESTANDARDDIRECTORY__ := 1}
  31.  
  32. {$I+}
  33. {$SETC OCEStandardDirectoryIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __APPLEEVENTS__}
  38. {$I AppleEvents.p}
  39. {$ENDC}
  40. {    Errors.p                                                    }
  41. {        ConditionalMacros.p                                        }
  42. {    Types.p                                                        }
  43. {    Memory.p                                                    }
  44. {        MixedMode.p                                                }
  45. {    OSUtils.p                                                    }
  46. {    Events.p                                                    }
  47. {        Quickdraw.p                                                }
  48. {            QuickdrawText.p                                        }
  49. {    EPPC.p                                                        }
  50. {        AppleTalk.p                                                }
  51. {        Files.p                                                    }
  52. {        PPCToolbox.p                                            }
  53. {        Processes.p                                                }
  54. {    Notification.p                                                }
  55.  
  56. {$IFC UNDEFINED __ICONS__}
  57. {$I Icons.p}
  58. {$ENDC}
  59.  
  60. {$IFC UNDEFINED __TYPES__}
  61. {$I Types.p}
  62. {$ENDC}
  63.  
  64. {$IFC UNDEFINED __WINDOWS__}
  65. {$I Windows.p}
  66. {$ENDC}
  67. {    Controls.p                                                    }
  68. {        Menus.p                                                    }
  69.  
  70. {$IFC UNDEFINED __OCE__}
  71. {$I OCE.p}
  72. {$ENDC}
  73. {    Aliases.p                                                    }
  74. {    Script.p                                                    }
  75. {        IntlResources.p                                            }
  76.  
  77. {$IFC UNDEFINED __OCEAUTHDIR__}
  78. {$I OCEAuthDir.p}
  79. {$ENDC}
  80.  
  81. {$PUSH}
  82. {$ALIGN MAC68K}
  83. {$LibExport+}
  84.  
  85. CONST
  86.     kSDPNewPanel                = 100;
  87.     kSDPGetNewPanel                = 101;
  88.     kSDPDisposePanel            = 102;
  89.     kSDPHidePanel                = 103;
  90.     kSDPShowPanel                = 104;
  91.     kSDPEnablePanel                = 105;
  92.     kSDPUpdatePanel                = 106;
  93.     kSDPMovePanel                = 107;
  94.     kSDPSizePanel                = 108;
  95.     kSDPOpenSelectedItem        = 109;
  96.     kSDPGetPanelSelectionState    = 110;
  97.     kSDPGetPanelSelection        = 111;
  98.     kSDPSetPath                    = 112;
  99.     kSDPPanelEvent                = 113;
  100.     kSDPGetPanelSelectionSize    = 114;
  101.     kSDPSetIdentity                = 115;
  102.     kSDPSelectString            = 116;
  103.     kSDPGetPathLength            = 117;
  104.     kSDPGetPath                    = 118;
  105.     kSDPSetFocus                = 119;
  106.     kSDPSetPanelBalloonHelp        = 120;
  107.     kSDPInstallPanelBusyProc    = 121;
  108.     kSDPPromptForID                = 904;
  109.     kSDPNewFindPanel            = 2300;
  110.     kSDPDisposeFindPanel        = 2301;
  111.     kSDPStartFind                = 2302;
  112.     kSDPStopFind                = 2303;
  113.     kSDPFindPanelEvent            = 2304;
  114.     kSDPDrawFindPanel            = 2305;
  115.     kSDPShowFindPanel            = 2306;
  116.     kSDPHideFindPanel            = 2307;
  117.     kSDPMoveFindPanel            = 2308;
  118.     kSDPEnableFindPanel            = 2309;
  119.     kSDPSetFindPanelFocus        = 2310;
  120.     kSDPGetFindPanelState        = 2311;
  121.     kSDPGetFindPanelSelectionSize = 2312;
  122.     kSDPGetFindPanelSelection    = 2313;
  123.     kSDPSetFindPanelBalloonHelp    = 2314;
  124.     kSDPSetFindIdentity            = 2315;
  125.     kSDPInstallFindPanelBusyProc = 2316;
  126.     kSDPGetIconByType            = 1024;
  127.     kSDPGetDSSpecIcon            = 1025;
  128.     kSDPGetCategories            = 1026;
  129.     kSDPGetCategoryTypes        = 1027;
  130.     kSDPResolveAliasFile        = 3700;
  131.     kSDPResolveAliasDSSpec        = 3701;
  132.     kSDPRepairPersonalDirectory    = 6700;
  133. { Collaboration Package Gestalts. }
  134.     gestaltSDPStandardDirectoryVersion = 'sdvr';
  135.     gestaltSDPFindVersion        = 'dfnd';
  136.     gestaltSDPPromptVersion        = 'prpv';
  137.  
  138.     genericDirectoryIconResource = -16721;                        { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  139.     genericLockedDirectoryIconResource = -16716;                { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  140.     genericRecordIconResource    = -16722;                        { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  141.     genericAttributeIconResource = -16723;                        { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  142.     genericTemplateIconResource    = -16746;                        { icl8, icl4, ICN#, ics#, ics4, ics8 }
  143.  
  144. { standard icon suites }
  145.     directoryFolderIconResource    = -16720;                        { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  146.     lockedDirectoryFolderIconResource = -16719;                    { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  147.     personalDirectoryIconResource = -16718;                        { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  148.     directoriesIconResource        = -16717;                        { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  149.     preferredPersonalDirectoryIconResource = -16724;            { icl8, icl4, ICN#, ics#, ics4, ics8, sicn  }
  150.  
  151. { icon IDs for spinning arrows }
  152.     kFirstSpinnerIcon            = -16745;
  153.     kLastSpinnerIcon            = -16738;
  154.  
  155. { resource types }
  156.     kSDPPanelResourceType        = 'panl';
  157.     kSDPFindPanelResourceType    = 'find';
  158.  
  159. { Standard FindPanel resource }
  160.     kStandardFindLayout            = -16700;
  161.  
  162. { Prompt For Identity structures }
  163.     kSDPGuestBit                = 0;
  164.     kSDPSpecificIdentityBit        = 1;
  165.     kSDPLocalIdentityBit        = 2;
  166.  
  167. { Values of SDPIdentityKind }
  168.     kSDPGuestMask                = 1 * (2**(kSDPGuestBit));
  169.     kSDPSpecificIdentityMask    = 1 * (2**(kSDPSpecificIdentityBit));
  170.     kSDPLocalIdentityMask        = 1 * (2**(kSDPLocalIdentityBit));
  171.  
  172.     
  173. TYPE
  174.     SDPIdentityKind = INTEGER;
  175.  
  176.  
  177. CONST
  178.     kSDPSuggestionOnly            = 0;
  179.     kSDPRestrictToDirectory        = 1;
  180.     kSDPRestrictToRecord        = 2;
  181.  
  182.     
  183. TYPE
  184.     SDPLoginFilterKind = INTEGER;
  185.  
  186. { Panel Structures }
  187. {
  188. While the panel is in operation, four selection states may exist.
  189.     1) kSDPNothingSelected means nothing is selected.
  190.     2) kContainSelected means a volume, folder, catalog, dnode, or PAB is selected.
  191.     3) kSDPLockedContainerSelected means one of the above, but no access privledges.
  192.     4) kSDPRecordSelected means that a record is currently selected.
  193. }
  194. { Values of SDPSelectionState }
  195.  
  196. CONST
  197.     kSDPNothingSelected            = 0;
  198.     kSDPLockedContainerSelected    = 1;
  199.     kSDPContainerSelected        = 2;
  200.     kSDPRecordSelected            = 3;
  201.     kSDPRecordAliasSelected        = 4;
  202.     kSDPContainerAliasSelected    = 5;
  203.  
  204.     
  205. TYPE
  206.     SDPSelectionState = INTEGER;
  207.  
  208. {
  209. This type informs the caller of the action the user took, either as the result
  210. of an event (as returned by SDPPanelEvent) or when SDPOpenSelectedItem is called.
  211.  
  212. kSDPProcessed means that the event (or call to SDPOpenSelectedItem) resulted in no
  213. state change.
  214.  
  215. kSDPSelectedAnItem indicates that the user wants to select the currently-hilited
  216. record. This is returned, for example, when a user double-clicks on a record.
  217.  
  218. kSDPChangedSelection implies that the user clicked on a new item (which may mean
  219. that no item is selected).
  220. }
  221. { Values of SDPPanelState }
  222.  
  223. CONST
  224.     kSDPProcessed                = 0;
  225.     kSDPSelectedAnItem            = 1;
  226.     kSDPChangedSelection        = 2;
  227.  
  228.     
  229. TYPE
  230.     SDPPanelState = INTEGER;
  231.  
  232. {
  233. Your application may read any of the fields in a SDPPanelRecord, but it should
  234. use the appropriate routines to make changes to the records with the exception
  235. of the refCon field which your application may read or write at will.  Private
  236. information follows the SDPPanelRecord, so the handle must not be re-sized.
  237. }
  238.     SDPPanelRecord = RECORD
  239.         bounds:                    Rect;
  240.         visible:                BOOLEAN;
  241.         enabled:                BOOLEAN;
  242.         focused:                BOOLEAN;
  243.         padByte:                SInt8; (* Byte *)
  244.         identity:                AuthIdentity;
  245.         refCon:                    LONGINT;
  246.         listRect:                Rect;
  247.         popupRect:                Rect;
  248.         numberOfRows:            INTEGER;
  249.         rowHeight:                INTEGER;
  250.         pabMode:                BOOLEAN;
  251.         filler1:                BOOLEAN;
  252.     END;
  253.  
  254.     SDPPanelPtr = ^SDPPanelRecord;
  255.     SDPPanelHandle = ^SDPPanelPtr;
  256.  
  257.     PanelBusyProcPtr = ProcPtr;  { PROCEDURE PanelBusy(Panel: SDPPanelHandle; busy: BOOLEAN); }
  258.     PanelBusyUPP = UniversalProcPtr;
  259.  
  260. CONST
  261.     uppPanelBusyProcInfo = $000001C0; { PROCEDURE (4 byte param, 1 byte param); }
  262.  
  263. FUNCTION NewPanelBusyProc(userRoutine: PanelBusyProcPtr): PanelBusyUPP;
  264.     {$IFC NOT GENERATINGCFM }
  265.     INLINE $2E9F;
  266.     {$ENDC}
  267.  
  268. PROCEDURE CallPanelBusyProc(Panel: SDPPanelHandle; busy: BOOLEAN; userRoutine: PanelBusyUPP);
  269.     {$IFC NOT GENERATINGCFM}
  270.     INLINE $205F, $4E90;
  271.     {$ENDC}
  272.     
  273. TYPE
  274.     PanelBusyProc = PanelBusyUPP;
  275.  
  276. { Find Panel Structures }
  277.  
  278. CONST
  279.     kSDPItemIsSelectedBit        = 0;
  280.     kSDPFindTextExistsBit        = 1;
  281.  
  282. { Values of SDPFindPanelState }
  283.     kSDPItemIsSelectedMask        = 1 * (2**(kSDPItemIsSelectedBit));
  284.     kSDPFindTextExistsMask        = 1 * (2**(kSDPFindTextExistsBit));
  285.  
  286.     
  287. TYPE
  288.     SDPFindPanelState = INTEGER;
  289.  
  290. { Values of SDPFindPanelFocus }
  291.  
  292. CONST
  293.     kSDPFindPanelNoFocus        = 0;
  294.     kSDPFindPanelListHasFocus    = 1;
  295.     kSDPFindPanelTextHasFocus    = 2;
  296.  
  297.     
  298. TYPE
  299.     SDPFindPanelFocus = INTEGER;
  300.  
  301.     SDPFindPanelRecord = RECORD
  302.         upperLeft:                Point;
  303.         visible:                BOOLEAN;
  304.         enabled:                BOOLEAN;
  305.         nowFinding:                BOOLEAN;
  306.         padByte:                SInt8; (* Byte *)
  307.         currentFocus:            SDPFindPanelFocus;
  308.         identity:                AuthIdentity;
  309.         simultaneousSearchCount: INTEGER;
  310.         refCon:                    LONGINT;
  311.     END;
  312.  
  313.     SDPFindPanelPtr = ^SDPFindPanelRecord;
  314.     SDPFindPanelHandle = ^SDPFindPanelPtr;
  315.  
  316. { Values of SDPFindPanelResult }
  317.  
  318. CONST
  319.     kSDPSelectedAFindItem        = 0;
  320.     kSDPFindSelectionChanged    = 1;
  321.     kSDPFindCompleted            = 2;
  322.     kSDPTextStateChanged        = 3;
  323.     kSDPFocusChanged            = 4;
  324.     kSDPSelectionAndFocusChanged = 5;
  325.     kSDPMenuChanged                = 6;
  326.     kSDPSelectionAndMenuChanged    = 7;
  327.     kSDPProcessedFind            = 8;
  328.  
  329.     
  330. TYPE
  331.     SDPFindPanelResult = INTEGER;
  332.  
  333.     PackedRStringListHandle = ^PackedPathNamePtr;
  334.  
  335.     PackedDSSpecHandle = ^PackedDSSpecPtr;
  336.  
  337.     FindPanelBusyProcPtr = ProcPtr;  { PROCEDURE FindPanelBusy(findPanel: SDPFindPanelHandle; busy: BOOLEAN); }
  338.     FindPanelBusyUPP = UniversalProcPtr;
  339.  
  340. CONST
  341.     uppFindPanelBusyProcInfo = $000001C0; { PROCEDURE (4 byte param, 1 byte param); }
  342.  
  343. FUNCTION NewFindPanelBusyProc(userRoutine: FindPanelBusyProcPtr): FindPanelBusyUPP;
  344.     {$IFC NOT GENERATINGCFM }
  345.     INLINE $2E9F;
  346.     {$ENDC}
  347.  
  348. PROCEDURE CallFindPanelBusyProc(findPanel: SDPFindPanelHandle; busy: BOOLEAN; userRoutine: FindPanelBusyUPP);
  349.     {$IFC NOT GENERATINGCFM}
  350.     INLINE $205F, $4E90;
  351.     {$ENDC}
  352.     
  353. TYPE
  354.     FindPanelBusyProc = FindPanelBusyUPP;
  355.  
  356. { Prompt For Identity Routines }
  357.  
  358. FUNCTION SDPPromptForID(VAR id: AuthIdentity; guestPrompt: ConstStr255Param; specificIDPrompt: ConstStr255Param; localIDPrompt: ConstStr255Param; {CONST}VAR recordType: RString; permittedKinds: SDPIdentityKind; VAR selectedKind: SDPIdentityKind; {CONST}VAR loginFilter: RecordID; filterKind: SDPLoginFilterKind): OSErr;
  359.     {$IFC NOT GENERATINGCFM}
  360.     INLINE $203C, 16, 904, $AA5D;
  361.     {$ENDC}
  362. {
  363. SDPNewPanel creates a new panel. You supply the window in which the panel
  364. is to live, the bounds for the panel (which includes both the menu and the list),
  365. whether or not the panel is to be initially visible, the initial RLI (nil for
  366. catalogs and volumes), the types of records that will be shown (only a single
  367. (non-nil) type which may contain wildcards), the identity by which to browse
  368. (for access control reasons), and a refCon which is  available to the caller.
  369. }
  370. FUNCTION SDPNewPanel(VAR newPanel: SDPPanelHandle; window: WindowPtr; {CONST}VAR bounds: Rect; visible: BOOLEAN; enabled: BOOLEAN; {CONST}VAR initialRLI: PackedRLI; {CONST}VAR typesList: RStringPtr; typeCount: LONGINT; identity: AuthIdentity; enumFlags: DirEnumChoices; matchTypeHow: ByteParameter; refCon: LONGINT): OSErr;
  371.     {$IFC NOT GENERATINGCFM}
  372.     INLINE $203C, 21, 100, $AA5D;
  373.     {$ENDC}
  374. {
  375. SDPSetIdentity Sets the identity used for browsing.  NOTE: This call is likely to go
  376. away if the new authentication scheme works.
  377. }
  378. FUNCTION SDPSetIdentity(panel: SDPPanelHandle; identity: AuthIdentity): OSErr;
  379.     {$IFC NOT GENERATINGCFM}
  380.     INLINE $203C, 4, 115, $AA5D;
  381.     {$ENDC}
  382. {
  383. SDPGetNewPanel is similar to SDPNewPanel above, except it takes a resource id of a
  384. 'panl' resource.
  385. }
  386. FUNCTION SDPGetNewPanel(VAR newPanel: SDPPanelHandle; resourceID: INTEGER; window: WindowPtr; {CONST}VAR initialRLI: PackedRLI; identity: AuthIdentity): OSErr;
  387.     {$IFC NOT GENERATINGCFM}
  388.     INLINE $203C, 9, 101, $AA5D;
  389.     {$ENDC}
  390. {
  391. Call this when you're completely done with a panel. It deallocates all of the
  392. associated data structures.
  393. }
  394. FUNCTION SDPDisposePanel(panel: SDPPanelHandle): OSErr;
  395.     {$IFC NOT GENERATINGCFM}
  396.     INLINE $203C, 2, 102, $AA5D;
  397.     {$ENDC}
  398. {
  399. If the panel is visible, it makes it invisible by hiding the menu, turning off
  400. drawing of the list, and erasing and  invaling the list's rectangle.
  401. }
  402. FUNCTION SDPHidePanel(panel: SDPPanelHandle): OSErr;
  403.     {$IFC NOT GENERATINGCFM}
  404.     INLINE $203C, 2, 103, $AA5D;
  405.     {$ENDC}
  406. { If the panel is invisible, it makes it visible and draws it. }
  407. FUNCTION SDPShowPanel(panel: SDPPanelHandle): OSErr;
  408.     {$IFC NOT GENERATINGCFM}
  409.     INLINE $203C, 2, 104, $AA5D;
  410.     {$ENDC}
  411. { Disables the list and menu so that it won't accept any commands. }
  412. FUNCTION SDPEnablePanel(panel: SDPPanelHandle; enable: BOOLEAN): OSErr;
  413.     {$IFC NOT GENERATINGCFM}
  414.     INLINE $203C, 3, 105, $AA5D;
  415.     {$ENDC}
  416. {
  417. Move the upper-left-hand corner of the panel to (h,v), given in local coordinates of
  418. the panel's window.
  419. }
  420. FUNCTION SDPMovePanel(panel: SDPPanelHandle; h: INTEGER; v: INTEGER): OSErr;
  421.     {$IFC NOT GENERATINGCFM}
  422.     INLINE $203C, 4, 107, $AA5D;
  423.     {$ENDC}
  424. {
  425. Resizes the panel to have the given width and height (keeping the upper-left-hand
  426. corner in a fixed position).
  427. }
  428. FUNCTION SDPSizePanel(panel: SDPPanelHandle; width: INTEGER; height: INTEGER): OSErr;
  429.     {$IFC NOT GENERATINGCFM}
  430.     INLINE $203C, 4, 108, $AA5D;
  431.     {$ENDC}
  432. {
  433. This routine simulates a double-click on the selected item (if there is no selected
  434. item, then it does nothing), and it returns the result of that "double-click" via the
  435. whatHappened parameter. If a container is selected, then that container will be
  436. opened and kMovedDownTheHierarchy is returned. If, however, the user is at the lowest
  437. level in the hierarchy, then kSDPSelectedAnItem is returned.
  438. }
  439. FUNCTION SDPOpenSelectedItem(panel: SDPPanelHandle; VAR whatHappened: SDPPanelState): OSErr;
  440.     {$IFC NOT GENERATINGCFM}
  441.     INLINE $203C, 4, 109, $AA5D;
  442.     {$ENDC}
  443. {
  444. Returns whether a record is selected, something else is selected, or nothing is
  445. selected.
  446. }
  447. FUNCTION SDPGetPanelSelectionState(panel: SDPPanelHandle; VAR itsState: SDPSelectionState): OSErr;
  448.     {$IFC NOT GENERATINGCFM}
  449.     INLINE $203C, 4, 110, $AA5D;
  450.     {$ENDC}
  451. {
  452. Returns the size of the currently-selected DSSpec, or zero if a record is
  453. not selected.  It is safe to do a NewPtr (SDPGetPanelSelectionSize (...))
  454. }
  455. FUNCTION SDPGetPanelSelectionSize(panel: SDPPanelHandle; VAR dsSpecSize: INTEGER): OSErr;
  456.     {$IFC NOT GENERATINGCFM}
  457.     INLINE $203C, 4, 114, $AA5D;
  458.     {$ENDC}
  459. {
  460. Returns the currently-selected DSSpec, or a zero-lengthed
  461. DSSpec if a record is not selected. It is assumed that the selection
  462. buffer allocated is large enough.
  463. }
  464. FUNCTION SDPGetPanelSelection(panel: SDPPanelHandle; VAR selection: PackedDSSpec): OSErr;
  465.     {$IFC NOT GENERATINGCFM}
  466.     INLINE $203C, 4, 111, $AA5D;
  467.     {$ENDC}
  468. {
  469. Forces browsing to the specified RLI. If prli is the current RLI, then it does
  470. nothing.
  471. }
  472. FUNCTION SDPSetPath(panel: SDPPanelHandle; {CONST}VAR prli: PackedRLI): OSErr;
  473.     {$IFC NOT GENERATINGCFM}
  474.     INLINE $203C, 4, 112, $AA5D;
  475.     {$ENDC}
  476. {
  477. This is the main driver for the panel.  You should pass all events to SDPPanelEvent
  478. including NULL events.  If you have more than 1 panel, you will need to
  479. call SDPPanelEvent for each panel.  NOTE:  For Update Events you will also need to call
  480. SDPUpdatePanel as described below.
  481. }
  482. FUNCTION SDPPanelEvent(panel: SDPPanelHandle; {CONST}VAR theEvent: EventRecord; VAR whatHappened: SDPPanelState): OSErr;
  483.     {$IFC NOT GENERATINGCFM}
  484.     INLINE $203C, 6, 113, $AA5D;
  485.     {$ENDC}
  486. {
  487. SDPUpdatePanel should be called in response to an update event.  Generally you will
  488. have first called BeginUpdate, and pass the windows visRgn as theRgn.  If NULL
  489. is passed for theRgn the entire panel is re-drawn.  NOTE:  Drawing is not cliped to
  490. theRgn, if this is desired, you must first call SetClip.
  491. }
  492. FUNCTION SDPUpdatePanel(panel: SDPPanelHandle; theRgn: RgnHandle): OSErr;
  493.     {$IFC NOT GENERATINGCFM}
  494.     INLINE $203C, 4, 106, $AA5D;
  495.     {$ENDC}
  496. {
  497. SDPSelectString scrolls and selects the closest matching string at the current
  498. level.  This is the same behavior as if the user typed in the given string.
  499. }
  500. FUNCTION SDPSelectString(panel: SDPPanelHandle; {CONST}VAR name: RString): OSErr;
  501.     {$IFC NOT GENERATINGCFM}
  502.     INLINE $203C, 4, 116, $AA5D;
  503.     {$ENDC}
  504. {
  505. SDPGetPathLength returns the length in bytes required to hold the current path name
  506. in RLI format.  This corresponds to the path name in the popup menu.
  507. }
  508. FUNCTION SDPGetPathLength(panel: SDPPanelHandle; VAR pathNameLength: INTEGER): OSErr;
  509.     {$IFC NOT GENERATINGCFM}
  510.     INLINE $203C, 4, 117, $AA5D;
  511.     {$ENDC}
  512. { SDPGetPath returns the current rli. }
  513. FUNCTION SDPGetPath(panel: SDPPanelHandle; VAR prli: PackedRLI; VAR dsRefNum: INTEGER): OSErr;
  514.     {$IFC NOT GENERATINGCFM}
  515.     INLINE $203C, 6, 118, $AA5D;
  516.     {$ENDC}
  517. {
  518. SDPSetFocus will draw the focus rectangle or erase the focus rectangle depending upon
  519. the focus boolean.
  520. }
  521. FUNCTION SDPSetFocus(panel: SDPPanelHandle; focus: BOOLEAN): OSErr;
  522.     {$IFC NOT GENERATINGCFM}
  523.     INLINE $203C, 3, 119, $AA5D;
  524.     {$ENDC}
  525. {
  526. SDPSetPanelBalloonHelp allows clients to specify a STR# resource id to use for 
  527. balloon help.  Balloon help is unavailable until this call is made.
  528. }
  529. FUNCTION SDPSetPanelBalloonHelp(panel: SDPPanelHandle; balloonHelpID: INTEGER): OSErr;
  530.     {$IFC NOT GENERATINGCFM}
  531.     INLINE $203C, 3, 120, $AA5D;
  532.     {$ENDC}
  533. {
  534. SDPInstallPanelBusyProc allows clients to install a CB that will be called while
  535. the panel is aynchronously busy.
  536. }
  537. FUNCTION SDPInstallPanelBusyProc(panel: SDPPanelHandle; busyProc: PanelBusyProc): OSErr;
  538.     {$IFC NOT GENERATINGCFM}
  539.     INLINE $203C, 4, 121, $AA5D;
  540.     {$ENDC}
  541. FUNCTION SDPNewFindPanel(VAR newPanel: SDPFindPanelHandle; window: WindowPtr; upperLeft: Point; layoutResourceID: INTEGER; visible: BOOLEAN; enabled: BOOLEAN; {CONST}VAR typesList: RStringPtr; typeCount: LONGINT; matchTypeHow: ByteParameter; identity: AuthIdentity; simultaneousSearchCount: INTEGER; initialFocus: SDPFindPanelFocus; refCon: LONGINT): OSErr;
  542.     {$IFC NOT GENERATINGCFM}
  543.     INLINE $203C, 20, 2300, $AA5D;
  544.     {$ENDC}
  545. FUNCTION SDPDisposeFindPanel(findPanel: SDPFindPanelHandle): OSErr;
  546.     {$IFC NOT GENERATINGCFM}
  547.     INLINE $203C, 2, 2301, $AA5D;
  548.     {$ENDC}
  549. FUNCTION SDPStartFind(findPanel: SDPFindPanelHandle): OSErr;
  550.     {$IFC NOT GENERATINGCFM}
  551.     INLINE $203C, 2, 2302, $AA5D;
  552.     {$ENDC}
  553. FUNCTION SDPStopFind(findPanel: SDPFindPanelHandle): OSErr;
  554.     {$IFC NOT GENERATINGCFM}
  555.     INLINE $203C, 2, 2303, $AA5D;
  556.     {$ENDC}
  557. FUNCTION SDPFindPanelEvent(findPanel: SDPFindPanelHandle; {CONST}VAR event: EventRecord; VAR whatHappened: SDPFindPanelResult): OSErr;
  558.     {$IFC NOT GENERATINGCFM}
  559.     INLINE $203C, 6, 2304, $AA5D;
  560.     {$ENDC}
  561. FUNCTION SDPUpdateFindPanel(findPanel: SDPFindPanelHandle; theRgn: RgnHandle): OSErr;
  562.     {$IFC NOT GENERATINGCFM}
  563.     INLINE $203C, 4, 2305, $AA5D;
  564.     {$ENDC}
  565. FUNCTION SDPShowFindPanel(findPanel: SDPFindPanelHandle): OSErr;
  566.     {$IFC NOT GENERATINGCFM}
  567.     INLINE $203C, 2, 2306, $AA5D;
  568.     {$ENDC}
  569. FUNCTION SDPHideFindPanel(findPanel: SDPFindPanelHandle): OSErr;
  570.     {$IFC NOT GENERATINGCFM}
  571.     INLINE $203C, 2, 2307, $AA5D;
  572.     {$ENDC}
  573. FUNCTION SDPMoveFindPanel(findPanel: SDPFindPanelHandle; h: INTEGER; v: INTEGER): OSErr;
  574.     {$IFC NOT GENERATINGCFM}
  575.     INLINE $203C, 4, 2308, $AA5D;
  576.     {$ENDC}
  577. FUNCTION SDPEnableFindPanel(findPanel: SDPFindPanelHandle; enabled: BOOLEAN): OSErr;
  578.     {$IFC NOT GENERATINGCFM}
  579.     INLINE $203C, 3, 2309, $AA5D;
  580.     {$ENDC}
  581. FUNCTION SDPSetFindPanelFocus(findPanel: SDPFindPanelHandle; newFocus: SDPFindPanelFocus): OSErr;
  582.     {$IFC NOT GENERATINGCFM}
  583.     INLINE $203C, 3, 2310, $AA5D;
  584.     {$ENDC}
  585. FUNCTION SDPGetFindPanelState(findPanel: SDPFindPanelHandle; VAR itsState: SDPFindPanelState): OSErr;
  586.     {$IFC NOT GENERATINGCFM}
  587.     INLINE $203C, 4, 2311, $AA5D;
  588.     {$ENDC}
  589. FUNCTION SDPGetFindPanelSelectionSize(findPanel: SDPFindPanelHandle; VAR size: INTEGER): OSErr;
  590.     {$IFC NOT GENERATINGCFM}
  591.     INLINE $203C, 4, 2312, $AA5D;
  592.     {$ENDC}
  593. FUNCTION SDPGetFindPanelSelection(findPanel: SDPFindPanelHandle; VAR selection: PackedDSSpec): OSErr;
  594.     {$IFC NOT GENERATINGCFM}
  595.     INLINE $203C, 4, 2313, $AA5D;
  596.     {$ENDC}
  597. FUNCTION SDPSetFindPanelBalloonHelp(findPanel: SDPFindPanelHandle; balloonHelpID: INTEGER): OSErr;
  598.     {$IFC NOT GENERATINGCFM}
  599.     INLINE $203C, 3, 2314, $AA5D;
  600.     {$ENDC}
  601. FUNCTION SDPSetFindIdentity(findPanel: SDPFindPanelHandle; identity: AuthIdentity): OSErr;
  602.     {$IFC NOT GENERATINGCFM}
  603.     INLINE $203C, 4, 2315, $AA5D;
  604.     {$ENDC}
  605. FUNCTION SDPInstallFindPanelBusyProc(findPanel: SDPFindPanelHandle; busyProc: FindPanelBusyProc): OSErr;
  606.     {$IFC NOT GENERATINGCFM}
  607.     INLINE $203C, 4, 2316, $AA5D;
  608.     {$ENDC}
  609. FUNCTION SDPGetIconByType({CONST}VAR recordType: RString; whichIcons: IconSelectorValue; VAR iconSuite: Handle): OSErr;
  610.     {$IFC NOT GENERATINGCFM}
  611.     INLINE $303C, 1024, $AA5C;
  612.     {$ENDC}
  613. FUNCTION SDPGetDSSpecIcon({CONST}VAR packedDSSpec: PackedDSSpec; whichIcons: IconSelectorValue; VAR iconSuite: Handle): OSErr;
  614.     {$IFC NOT GENERATINGCFM}
  615.     INLINE $303C, 1025, $AA5C;
  616.     {$ENDC}
  617. FUNCTION SDPGetCategories(VAR categories: PackedRStringListHandle; VAR displayNames: PackedRStringListHandle): OSErr;
  618.     {$IFC NOT GENERATINGCFM}
  619.     INLINE $303C, 1026, $AA5C;
  620.     {$ENDC}
  621. FUNCTION SDPGetCategoryTypes({CONST}VAR category: RString; VAR types: PackedRStringListHandle): OSErr;
  622.     {$IFC NOT GENERATINGCFM}
  623.     INLINE $303C, 1027, $AA5C;
  624.     {$ENDC}
  625. FUNCTION SDPResolveAliasFile(fileSpec: FSSpecPtr; resolvedDSSpec: PackedDSSpecHandle; identity: AuthIdentity; mayPromptUser: BOOLEAN): OSErr;
  626.     {$IFC NOT GENERATINGCFM}
  627.     INLINE $203C, 7, 3700, $AA5D;
  628.     {$ENDC}
  629. FUNCTION SDPResolveAliasDSSpec(theAliasDSSpec: PackedDSSpecHandle; identity: AuthIdentity; mayPromptUser: BOOLEAN): OSErr;
  630.     {$IFC NOT GENERATINGCFM}
  631.     INLINE $203C, 5, 3701, $AA5D;
  632.     {$ENDC}
  633. FUNCTION SDPRepairPersonalDirectory(VAR pd: FSSpec; showProgress: BOOLEAN): OSErr;
  634.     {$IFC NOT GENERATINGCFM}
  635.     INLINE $203C, 3, 6700, $AA5D;
  636.     {$ENDC}
  637.  
  638. {$ALIGN RESET}
  639. {$POP}
  640.  
  641. {$SETC UsingIncludes := OCEStandardDirectoryIncludes}
  642.  
  643. {$ENDC} {__OCESTANDARDDIRECTORY__}
  644.  
  645. {$IFC NOT UsingIncludes}
  646.  END.
  647. {$ENDC}
  648.